package com.exam.mapper;

import com.exam.po.ExamManage;
import com.exam.po.ExamManageExample;
import java.util.List;

import io.swagger.models.auth.In;
import org.apache.ibatis.annotations.Param;

public interface ExamManageMapper {

    int countByExample(ExamManageExample example);

    int deleteByExample(ExamManageExample example);

    int deleteByPrimaryKey(Integer examcode);

    int insert(ExamManage record);

    /*
     * @Author mahaoqi
     * @Description 添加考试信息   默认状态  未审核
     * @Date 2021/1/13 10:46
     * @Param [record]
     * @return int
     **/
    int insertSelective(ExamManage record);

    List<ExamManage> selectByExample(ExamManageExample example);

    ExamManage selectByPrimaryKey(Integer examcode);

    int updateByExampleSelective(@Param("record") ExamManage record, @Param("example") ExamManageExample example);

    int updateByExample(@Param("record") ExamManage record, @Param("example") ExamManageExample example);

    int updateByPrimaryKeySelective(ExamManage record);

    int updateByPrimaryKey(ExamManage record);

    /*
     * @Author mahaoqi
     * @Description 查找  tcid
     * @Date 2021/1/13 10:45
     * @Param [teacherid, coursename]
     * @return java.lang.Integer
     **/
    Integer findTCid(@Param("teacherid") Integer teacherid, @Param("coursename") String coursename);

    /*
     * @Author mahaoqi
     * @Description 查找  状态为  未审核 的考试
     * @Date 2021/1/13 10:45
     * @Param [teacherid, page, pageSize]
     * @return java.util.List<com.exam.po.ExamManage>
     **/
    List<ExamManage> findList(@Param("teacherid")Integer teacherid,@Param("page") int page,@Param("pageSize") int pageSize);

    Integer findListCount(@Param("teacherid")Integer teacherid);
    /*
     * @Author mahaoqi
     * @Description 查找状态为  未通过的考试
     * @Date 2021/1/13 10:45
     * @Param [teacherid, page, pageSize]
     * @return java.util.List<com.exam.po.ExamManage>
     **/
    List<ExamManage> findNoList(@Param("teacherid")Integer teacherid,@Param("page") int page,@Param("pageSize") int pageSize);

    List<ExamManage> selectByPageAndPagesize(@Param("page") Integer page, @Param("pagesize") Integer pagesize);

    List<ExamManage> findExams(@Param("page") int page,@Param("size") int size);

    /**
     * 获取考试数目
     * @return
     */
    int countAll();

    /**
     * 管理员查询考试
     * @param current
     * @param size
     * @return
     */
    List<ExamManage> findAdminBypage(@Param("current") Integer current,@Param("size") Integer size);
    /**
     * 管理员选择性添加
     * @param examManage
     * @return
     */
    int AddSelective(ExamManage examManage);

    /**
     * 管理员修改考试
     * @param record
     * @return
     */
    int updateBySelective(ExamManage record);

    /**
     * 管理员删除考试
     * @param examcode
     * @return
     */
    int deleteByKey(Integer examcode);

    /**
     * 管理员审核考试
     * @param page
     * @param size
     * @return
     */
    List<ExamManage> selectAdminBypage(@Param("page") Integer page,@Param("size") Integer size);

    /**
     * 管理员审核(未通过)
     * @param
     * @return
     */
    int updateAdminBySelective(Integer examcode);

    /**
     * 管理员审核(已审核)
     * @param examcode
     * @return
     */
    int updateAdminYiShenHe(Integer examcode);

    /**
     * 考试总条数
     * @param
     * @return
     */
    int countExample();
    /**
     * 管理员查看考试总条数
     * @param
     * @return
     */
    int countAdminExample();

    /**
     * 管理员查询不分页查询所有
     * @return
     */
    List<ExamManage> selectAdminExam();

    /**
     * 根据ID查找
     * @param examcode
     * @return
     */
    ExamManage selectById(Integer examcode);

    /**
     * 查询最后一条
     * @return
     */
    ExamManage selectOnlyPaperId();

}